var BMapGLLib=(window.BMapGLLib=BMapGLLib||{});(function(){var a=6370996.81;var b=(BMapGLLib.GeoUtils=function(){});b.isPointInRect=function(f,g){if(!(f.toString()==="Point"||f.toString()==="LatLng")||!(g instanceof BMapGL.Bounds)){return false}var e=g.getSouthWest();var h=g.getNorthEast();return(f.lng>=e.lng&&f.lng<=h.lng&&f.lat>=e.lat&&f.lat<=h.lat)};b.isPointInCircle=function(e,h){if(!(e.toString()==="Point"||e.toString()==="LatLng")||!(h instanceof BMapGL.Circle)){return false}var i=h.getCenter();var g=h.getRadius();var f=b.getDistance(e,i);if(f<=g){return true}else{return false}};b.isPointOnPolyline=function(f,h){if(!(f.toString()==="Point"||f.toString()==="LatLng")||!(h instanceof BMapGL.Polyline)){return false}var e=h.getBounds();if(!this.isPointInRect(f,e)){return false}var m=h.getPath();for(var k=0;k=Math.min(l.lng,j.lng)&&f.lng<=Math.max(l.lng,j.lng)&&f.lat>=Math.min(l.lat,j.lat)&&f.lat<=Math.max(l.lat,j.lat)){var g=(l.lng-f.lng)*(j.lat-f.lat)-(j.lng-f.lng)*(l.lat-f.lat);if(g<2e-9&&g>-2e-9){return true}}}return false};b.isPointInPolygon=function(o,l){if(!(o.toString()==="Point"||o.toString()==="LatLng")||!(l instanceof BMapGL.Polygon)){return false}var k=l.getBounds();if(!this.isPointInRect(o,k)){return false}var t=l.getPath();var h=t.length;var n=true;var j=0;var g=2e-10;var s,q;var e=o;s=t[0];for(var f=1;f<=h;++f){if(e.equals(s)){return n}q=t[f%h];if(e.latMath.max(s.lat,q.lat)){s=q;continue}if(e.lat>Math.min(s.lat,q.lat)&&e.lat=Math.min(s.lng,q.lng)){return n}if(s.lng==q.lng){if(s.lng==e.lng){return n}else{++j}}else{var r=((e.lat-s.lat)*(q.lng-s.lng))/(q.lat-s.lat)+s.lng;if(Math.abs(e.lng-r)=Math.min(s.lat,m.lat)&&e.lat<=Math.max(s.lat,m.lat)){++j}else{j+=2}}}s=q}if(j%2==0){return false}else{return true}};b.degreeToRad=function(e){return(Math.PI*e)/180};b.radToDegree=function(e){return(180*e)/Math.PI};function d(g,f,e){if(f!=null){g=Math.max(g,f)}if(e!=null){g=Math.min(g,e)}return g}function c(g,f,e){while(g>e){g-=e-f}while(g1){m=1}m=Math.acos(m);G=z*l-Q*O;j=0-(g*l-Q*s);A=g*O-z*s;if(S!=0){o=G/S}else{if(H!=0){o=j/H}else{o=A/p}}if(o>0){y+=m;k++}else{x+=m;h++}}var u,r;u=y+(2*Math.PI*h-x);r=2*Math.PI*k-y+x;if(y>x){if(u-(B-2)*Math.PI<1){f=u}else{f=r}}else{if(r-(B-2)*Math.PI<1){f=r}else{f=u}}w=(f-(B-2)*Math.PI)*n*n;return w};b.isPolylineIntersectArea=function(s,r){var g=function(D,B,y,n){var l=D.lng,C=D.lat;var k=B.lng,A=B.lat;var j=y.lng,x=y.lat;var H=n.lng,m=n.lat;if(!(Math.min(l,k)<=Math.max(j,H)&&Math.min(x,m)<=Math.max(C,A)&&Math.min(j,H)<=Math.max(l,k)&&Math.min(C,A)<=Math.max(x,m))){return false}var G,F,E,t;G=(j-l)*(A-C)-(k-l)*(x-C); F=(H-l)*(A-C)-(k-l)*(m-C);E=(l-j)*(m-x)-(H-j)*(C-x);t=(k-j)*(m-x)-(H-j)*(A-x);return(G*F<=2e-10&&E*t<=2e-10)};if(!(s instanceof BMapGL.Polyline&&r instanceof BMapGL.Polygon)){console.error("参数出错,传入值非折线和多边形");return false}s=s.getPath().map(function(j){return{"lng":j.lng,"lat":j.lat}});r=r.getPath().map(function(j){return{"lng":j.lng,lat:j.lat}});if(s.length<1||r.length<=2){console.error("参数出错,传入值非折线和多边形");return false}var e=[],f=[];for(var q=0;q